#pragma once

#define RESET_SPEED 0.0f

#include "WalkInstructionHandler.h"

class AiboWalkControl
{
public:
	AiboWalkControl( WalkInstructionHandler* walkHandler );
	~AiboWalkControl(void);

	void walkForward();
	void walkForward( float walkSpeed );
	void walkBackward();
	void walkBackward( float walkSpeed );
	void turnLeft();
	void turnLeft( float turnSpeed );
	void turnRight();
	void turnRight( float turnSpeed );

	void strafeRight();
	void strafeRight( float strafeSpeed );
	void strafeLeft();
	void strafeLeft( float strafeSpeed );

	void stopWalk();
	void stopTurn();
	void stopStrafe();

	void setWalkSpeed( float walkSpeed );
	void setTurnSpeed( float turnSpeed );

	float getWalkSpeed() {return this->m_walkSpeed;}
	float getTurnSpeed() { return this->m_turnSpeed; }
	WalkInstructionHandler* getWalkHandler() { return this->m_walkHandler; }
	void setWalkHandler( WalkInstructionHandler* walkHandler ) { this->m_walkHandler = walkHandler; }
private:
	float m_walkSpeed;
	float m_turnSpeed;
	WalkInstructionHandler* m_walkHandler;
};

